/*
// 双控开关
module top(
  input a,
  input b,
  output f
);
  assign f = a ^ b; // 双控开关，其实就是异或逻辑
endmodule
*/

// 部署电路
module top(
  input wire [1:0] sel, // 选择信号
  input [1:0] a, [1:0] b, [1:0] c,[1:0] d, // 数据输入
  output [1:0] y,
  output reg [15:0] led
);
  reg clk = sel[0];
  reg rst = 0;

  mux_4to1_gate_2bits mux42(sel,a,b,c,d,y);
  demo_countor countor(clk,rst,led);

  always @(posedge sel[0]) begin  // posedge表示在sel[0]的上升沿触发
    clk <= ~clk; // 产生时钟脉冲
  end

  //always @(posedge clk ) begin // 时钟上升沿触发
   // countor(clk, rst, led); // 调用计数器 -> 
  // 这是典型的软件思维。实际上计数器已经部署，clk信号也接入了，clk取反后，
  // 计数器模块的就会收到上升沿，于是其中的always时序逻辑，就会得到触发运行。
  //end
  initial begin
   // $display("a = %d, b = %d, s = %d, y = %d", a, b, s, y);
  end
endmodule
